'\" et
.TH RENICE "1P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual"
.\"
.SH PROLOG
This manual page is part of the POSIX Programmer's Manual.
The Linux implementation of this interface may differ (consult
the corresponding Linux manual page for details of Linux behavior),
or the interface may not be implemented on Linux.
.\"
.SH NAME
renice
\(em set nice values of running processes
.SH SYNOPSIS
.LP
.nf
renice \fB[\fR-g|-p|-u\fB] \fR-n \fIincrement ID\fR...
.fi
.SH DESCRIPTION
The
.IR renice
utility shall request that the nice values (see the Base Definitions volume of POSIX.1\(hy2017,
.IR "Section 3.244" ", " "Nice Value")
of one or more running processes be changed. By default, the applicable
processes are specified by their process IDs. When a process group is
specified (see
.BR \-g ),
the request shall apply to all processes in the process group.
.P
The nice value shall be bounded in an implementation-defined manner.
If the requested
.IR increment
would raise or lower the nice value of the executed utility beyond
implementation-defined limits, then the limit whose value was
exceeded shall be used.
.P
When a user is
.IR renice d,
the request applies to all processes whose saved set-user-ID matches
the user ID corresponding to the user.
.P
Regardless of which options are supplied or any other factor,
.IR renice
shall not alter the nice values of any process unless the user
requesting such a change has appropriate privileges to do so for the
specified process. If the user lacks appropriate privileges to perform
the requested action, the utility shall return an error status.
.P
The saved set-user-ID of the user's process shall be checked instead of
its effective user ID when
.IR renice
attempts to determine the user ID of the process in order to determine
whether the user has appropriate privileges.
.SH OPTIONS
The
.IR renice
utility shall conform to the Base Definitions volume of POSIX.1\(hy2017,
.IR "Section 12.2" ", " "Utility Syntax Guidelines",
except for Guideline 9.
.P
The following options shall be supported:
.IP "\fB\-g\fP" 10
Interpret the following operands as unsigned decimal integer process
group IDs.
.IP "\fB\-n\ \fIincrement\fR" 10
Specify how the nice value of the specified process or processes is to
be adjusted. The
.IR increment
option-argument is a positive or negative decimal integer that shall be
used to modify the nice value of the specified process or processes.
.RS 10 
.P
Positive
.IR increment
values shall cause a lower nice value. Negative
.IR increment
values may require appropriate privileges and shall cause a higher
nice value.
.RE
.IP "\fB\-p\fP" 10
Interpret the following operands as unsigned decimal integer process
IDs. The
.BR \-p
option is the default if no options are specified.
.IP "\fB\-u\fP" 10
Interpret the following operands as users. If a user exists with a user
name equal to the operand, then the user ID of that user is used in
further processing. Otherwise, if the operand represents an unsigned
decimal integer, it shall be used as the numeric user ID of the user.
.SH OPERANDS
The following operands shall be supported:
.IP "\fIID\fR" 10
A process ID, process group ID, or user name/user ID, depending on the
option selected.
.SH STDIN
Not used.
.SH "INPUT FILES"
None.
.SH "ENVIRONMENT VARIABLES"
The following environment variables shall affect the execution of
.IR renice :
.IP "\fILANG\fP" 10
Provide a default value for the internationalization variables that are
unset or null. (See the Base Definitions volume of POSIX.1\(hy2017,
.IR "Section 8.2" ", " "Internationalization Variables"
for the precedence of internationalization variables used to determine
the values of locale categories.)
.IP "\fILC_ALL\fP" 10
If set to a non-empty string value, override the values of all the
other internationalization variables.
.IP "\fILC_CTYPE\fP" 10
Determine the locale for the interpretation of sequences of bytes of
text data as characters (for example, single-byte as opposed to
multi-byte characters in arguments).
.IP "\fILC_MESSAGES\fP" 10
.br
Determine the locale that should be used to affect the format and
contents of diagnostic messages written to standard error.
.IP "\fINLSPATH\fP" 10
Determine the location of message catalogs for the processing of
.IR LC_MESSAGES .
.SH "ASYNCHRONOUS EVENTS"
Default.
.SH STDOUT
Not used.
.SH STDERR
The standard error shall be used only for diagnostic messages.
.SH "OUTPUT FILES"
None.
.SH "EXTENDED DESCRIPTION"
None.
.SH "EXIT STATUS"
The following exit values shall be returned:
.IP "\00" 6
Successful completion.
.IP >0 6
An error occurred.
.SH "CONSEQUENCES OF ERRORS"
Default.
.LP
.IR "The following sections are informative."
.SH "APPLICATION USAGE"
None.
.SH EXAMPLES
.IP " 1." 4
Adjust the nice value so that process IDs 987 and 32 would have a lower
nice value:
.RS 4 
.sp
.RS 4
.nf

renice -n 5 -p 987 32
.fi
.P
.RE
.RE
.IP " 2." 4
Adjust the nice value so that group IDs 324 and 76 would have a higher
nice value, if the user has appropriate privileges to do so:
.RS 4 
.sp
.RS 4
.nf

renice -n -4 -g 324 76
.fi
.P
.RE
.RE
.IP " 3." 4
Adjust the nice value so that numeric user ID 8 and user
.BR sas
would have a lower nice value:
.RS 4 
.sp
.RS 4
.nf

renice -n 4 -u 8 sas
.fi
.P
.RE
.RE
.P
Useful nice value increments on historical systems include 19 or 20
(the affected processes run only when nothing else in the system
attempts to run) and any negative number (to make processes run
faster).
.SH RATIONALE
The
.IR gid ,
.IR pid ,
and
.IR user
specifications do not fit either the definition of operand or
option-argument. However, for clarity, they have been included in the
OPTIONS section, rather than the OPERANDS section.
.P
The definition of nice value is not intended to suggest that all
processes in a system have priorities that are comparable. Scheduling
policy extensions such as the realtime priorities in the System Interfaces volume of POSIX.1\(hy2017 make the
notion of a single underlying priority for all scheduling policies
problematic. Some implementations may implement the
.IR nice -related
features to affect all processes on the system, others to affect just
the general time-sharing activities implied by this volume of POSIX.1\(hy2017, and others may
have no effect at all. Because of the use of
``implementation-defined'' in
.IR nice
and
.IR renice ,
a wide range of implementation strategies are possible.
.P
Originally, this utility was written in the historical manner, using
the term ``nice value''. This was always a point of concern with users
because it was never intuitively obvious what this meant. With a newer
version of
.IR renice ,
which used the term ``system scheduling priority'', it was hoped that
novice users could better understand what this utility was meant to
do. Also, it would be easier to document what the utility was meant to
do. Unfortunately, the addition of the POSIX realtime scheduling
capabilities introduced the concepts of process and thread scheduling
priorities that were totally unaffected by the
.IR nice /\c
.IR renice
utilities or the
\fInice\fR()/\c
\fIsetpriority\fR()
functions. Continuing to use the term ``system scheduling priority''
would have incorrectly suggested that these utilities and functions
were indeed affecting these realtime priorities. It was decided to
revert to the historical term ``nice value'' to reference this
unrelated process attribute.
.P
Although this utility has use by system administrators (and in fact
appears in the system administration portion of the BSD documentation),
the standard developers considered that it was very useful for
individual end users to control their own processes.
.P
Earlier versions of this standard allowed the following forms in the
SYNOPSIS:
.sp
.RS 4
.nf

renice \fInice_value\fB[\fR-p\fB] \fIpid\fR...\fB[\fR-g \fIgid\fR...\fB][\fR-p \fIpid\fR...\fB][\fR-u \fIuser\fR...\fB]\fR
renice \fInice_value -g \fIgid\fR...\fB[\fR-g \fIgid\fR...\fB]\fR-p \fIpid\fR...\fB][\fR-u \fIuser\fR...\fB]\fR
renice \fInice_value -u \fIuser\fR...\fB[\fR-g \fIgid\fR...\fB]\fR-p \fIpid\fR...\fB][\fR-u \fIuser\fR...\fB]\fR
.fi
.P
.RE
.P
These forms are no longer specified by POSIX.1\(hy2008 but may be
present in some implementations.
.SH "FUTURE DIRECTIONS"
None.
.SH "SEE ALSO"
.IR "\fInice\fR\^"
.P
The Base Definitions volume of POSIX.1\(hy2017,
.IR "Section 3.244" ", " "Nice Value",
.IR "Chapter 8" ", " "Environment Variables",
.IR "Section 12.2" ", " "Utility Syntax Guidelines"
.\"
.SH COPYRIGHT
Portions of this text are reprinted and reproduced in electronic form
from IEEE Std 1003.1-2017, Standard for Information Technology
-- Portable Operating System Interface (POSIX), The Open Group Base
Specifications Issue 7, 2018 Edition,
Copyright (C) 2018 by the Institute of
Electrical and Electronics Engineers, Inc and The Open Group.
In the event of any discrepancy between this version and the original IEEE and
The Open Group Standard, the original IEEE and The Open Group Standard
is the referee document. The original Standard can be obtained online at
http://www.opengroup.org/unix/online.html .
.PP
Any typographical or formatting errors that appear
in this page are most likely
to have been introduced during the conversion of the source files to
man page format. To report such errors, see
https://www.kernel.org/doc/man-pages/reporting_bugs.html .
